(define (ascending? s) (if (or (null? s) (null? (cdr s))) #t (if (or (= (car s) (car (cdr s))) (< (car s) (car (cdr s)))) (ascending? (cdr s)) #f)))

(define (my-filter pred s) 
    (if (null? s) 
        nil
        (if (pred (car s)) 
            (cons (car s) (my-filter pred (cdr s))) 
            (my-filter pred (cdr s)))))

(define (interleave lst1 lst2) 
    (if (and (not (null? lst1)) (not (null? lst2)))
       (cons (car lst1) (interleave lst2 (cdr lst1)))
       (if (null? lst1)
           lst2
           lst1
           )
       ))

(define (no-repeats s)
    (if (null? s)
        nil
        (cons (car s) (no-repeats (my-filter (lambda (x) (not (= (car s) x))) (cdr s)))))
)
